FIN4770:Programming for FinTech
University of South Florida
Learn the fundamental technology in FinTech
A “Programming” course
A “Hands on” course
Matthew Son, Ph.D. in Finance
Office: BSN 3127
gson@usf.edu
R, Python, C/C++
Research area:
Please tell us about yourself briefly:
Throughout the course you’ll use and learn:
Unix shell (Bash), R programming language and its packages
Python by converting your knowledge
VScode IDE for main interface
Copilot coding agent tools for programming
Basic knowledge in Finance
Excel & Financial calculator
General proficiency with computers
A two-part structure: lectures (70%) and lab sessions (30%).
Lecture: the instructor will cover the concepts and demonstrate.
Lab sessions:
By the end of this course, you’ll have a solid foundation in programming that is applicable to financial world.
Regular practice, completing assignments, and active participation are key to your success.
Try to memorize by practicing.
I will providing support, guidance, and resources to facilitate your learning.
I prefer meeting in person for receiving questions. It is far more effective than email communication.
However, when asking in email, explain:
The latest stable version of R, Unix Shell (Bash, Zsh, etc.), Python
VScode IDE
All free online textbooks:
Wickham & Grolemund - R for Data Science, 2nd ed.
Wickham - Advanced R, 2nd ed.
Gagolewski - Deep R Programming
Gagolewski - Minimalist Data Wrangling with Python
Janssens - Data Science at the Command Line
| Graded Items | Percent of Final Grade |
|---|---|
| Participation | 10% |
| Quizzes | 20% |
| Assignments | 15% |
| Midterm | 25% |
| Final Exam | 30% |
Grades will be curved with target average B~B+.
| Grade | Grade Percentage | Grade | Grade Percentage | |
|---|---|---|---|---|
| A | 94% - 100% | C+ | 77% - 79% | |
| A- | 90% - 93% | C | 74% - 76% | |
| B+ | 87% - 89% | C- | 70% - 73% | |
| B | 84% - 86% | D+ | 67% - 69% | |
| B- | 80% - 83% | D | 64% - 66% | |
| D- | 60% - 63% | |||
| F | 0% - 59% |
In-class short (20 min), closed book
Based on the previous lectures and lab problems.
Based on the lectures, lab problems and homework assignments.
Module 1: Git/Github, Unix Shell
Module 2: R Programming
Module 3: Python & LLMs
The course schedule is tentative and subject to change.
| Week | Topics | Finance Applications | |
|---|---|---|---|
| 1~3 | Unix Shell |
|
|
| 4 ~ 14 | R |
|
|
| 15 | Python & LLMs |
|
|
| Time permitting | Special Topic |
|
Attendance is required in all lecture and lab sections.
I will randomly check attendance during class for bonus points.
Students are required to comply with the university policy on academic integrity found in USF Regulation 3.027.
Dishonesty will not be tolerated under any circumstances!
Strictly prohibited during exams/quizzes:
Please limit computer usage to activities directly related to the class.
Phones are not permitted as they are unlikely to be useful for course-related activities.
While eating and drinking are allowed in class, please ensure that they do not disrupt the course.
Late submissions will not be graded unless:
if a valid excuse is communicated to the instructor before the deadline
valid excuses with proof will be accepted later, in extenuating circumstances
A valid excuse must be communicated to the instructor before the exam/quiz
There will be no make-up exams/quizzes
If you miss an exam or quiz due to documented extenuating circumstances, the weight will be redistributed proportionally to your remaining exams/quizzes in that category
Students may request re-grading exams and assignments within one week (seven calendar days) after grading.
In the case of a regrading request after the final exam, all previous submissions for the course will be strictly and thoroughly reevaluated.
When you learn a programming language, you actually learn two languages.
meta-programming language
programming language per se
Easy and intuitive to learn
State-of-art visualizations
Robust machine learning packages
R
Python
Write once, run everywhere: dplyr syntax that can be used in:
arrow for fast out-of-core data
dbplyr for databases (duckdb, SQLite, etc.)
sparklyr for spark integration
and others (dtplyr, tidypolars)
FIN4770:Programming for FinTech